function weryfikujPoleTekstowe(id, wzorzec) {

	var reg = wzorzec;
	var address = document.getElementById(id).value;
	var idRes = 'wer-' + id;

	if (reg.test(address) == false) {

		document.getElementById(id).setAttribute('style', 'color: red');
		document.getElementById(idRes).setAttribute('style', 'color: red');
		document.getElementById(id).setAttribute('style',
				'border: 1px solid red');
		return false;

	} else {

		document.getElementById(id).setAttribute('style', 'color: green');
		document.getElementById(idRes).setAttribute('style', 'color: green');
		document.getElementById(id).setAttribute('style',
				'border: 1px solid green');
		return true;
	}

}

function weryfikujEmail() {
	return weryfikujPoleTekstowe('email',
			/^([A-Za-z0-9_\-\.\+])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/);
}

function weryfikujHaslo() {
	return weryfikujPoleTekstowe('haslo', /^.{8,40}$/);
}

function weryfikujImie() {
	return weryfikujPoleTekstowe('imie', /^[A-Za-zĄŚŹŻĆŁÓĘąśżźćłó]{3,20}$/);
}

function weryfikujNazwisko() {
	return weryfikujPoleTekstowe('nazwisko',
			/^[A-Za-zĄŚŹŻĆŁÓĘąśżźćłó\- ]{3,40}$/);
}

function weryfikujPesel() {

	var dlugoscPESEL = weryfikujPoleTekstowe('pesel', /^[0-9]{11}$/);
	var dlugoscData = weryfikujPoleTekstowe('pesel',
			/^[0-9]{4}\-[0-1][0-9]\-[0-3][0-9]$/);

	if (dlugoscPESEL) {

		var pesel = document.getElementById('pesel').value;

		var arr = pesel.split("");
		var ratio = parseInt(arr[0]) * 1;
		ratio += parseInt(arr[1]) * 3;
		ratio += parseInt(arr[2]) * 7;
		ratio += parseInt(arr[3]) * 9;
		ratio += parseInt(arr[4]) * 1;
		ratio += parseInt(arr[5]) * 3;
		ratio += parseInt(arr[6]) * 7;
		ratio += parseInt(arr[7]) * 9;
		ratio += parseInt(arr[8]) * 1;
		ratio += parseInt(arr[9]) * 3;

		var controlInt = 10 - ratio % 10;
		var controlSum = parseInt(pesel.substr(10, 1));

		if (controlInt != controlSum) {

			document.getElementById('pesel')
					.setAttribute('style', 'color: red');
			document.getElementById('wer-pesel').setAttribute('style',
					'color: red');
			document.getElementById('pesel').setAttribute('style',
					'border: 1px solid red');
			dlugoscPESEL = false;

		} else {

			document.getElementById('pesel').setAttribute('style',
					'color: green');
			document.getElementById('wer-pesel').setAttribute('style',
					'color: green');
			document.getElementById('pesel').setAttribute('style',
					'border: 1px solid green');
			dlugoscPESEL = true;
		}

	} else if (dlugoscData) {

		var data = document.getElementById('pesel').value;

		rok = parseInt(data.substr(0, 4));
		miesiac = parseInt(data.substr(5, 2));
		dzien = parseInt(data.substr(8, 2));

		if (rok > 1800 && rok <= 2012 && miesiac >= 1 && miesiac <= 12
				&& dzien >= 1 && dzien <= 31) {
			document.getElementById('pesel').setAttribute('style',
					'color: green');
			document.getElementById('wer-pesel').setAttribute('style',
					'color: green');
			document.getElementById('pesel').setAttribute('style',
					'border: 1px solid green');
			dlugoscData = true;
		} else {
			document.getElementById('pesel')
					.setAttribute('style', 'color: red');
			document.getElementById('wer-pesel').setAttribute('style',
					'color: red');
			document.getElementById('pesel').setAttribute('style',
					'border: 1px solid red');
			dlugoscData = false;
		}

	} else {

	}

	return (dlugoscPESEL | dlugoscData);

}

function weryfikujNIP() {

	var nip = document.getElementById('nip').value;

	var wynik = weryfikujPoleTekstowe('nip', /^[0-9]*$/);

	if (nip.length != 10)
		wynik &= false;

	if (nip.length > 0) {
		// Check checkdigit
		sum = 6 * nip[0] + 5 * nip[1] + 7 * nip[2] + 2 * nip[3] + 3 * nip[4]
				+ 4 * nip[5] + 5 * nip[6] + 6 * nip[7] + 7 * nip[8];
		sum %= 11;
		if (nip[9] != sum)
			wynik &= false;

	}

	if (nip.length == 0)
		wynik = true;

	if (wynik == true) {

		document.getElementById('nip').setAttribute('style', 'color: green');
		document.getElementById('wer-nip')
				.setAttribute('style', 'color: green');
		document.getElementById('nip').setAttribute('style',
				'border: 1px solid green');

	} else {

		document.getElementById('nip').setAttribute('style', 'color: red');
		document.getElementById('wer-nip').setAttribute('style', 'color: red');
		document.getElementById('nip').setAttribute('style',
				'border: 1px solid red');

	}

	return wynik;

}

function weryfikujAdres() {
	return weryfikujPoleTekstowe('adres',
			/^[A-Za-zĄŚŹŻĆŁÓĘąśżźćłó]{3,50} ?[0-9a-zA-Z]+$/);
}

function weryfikujKodPocztowy() {
	return weryfikujPoleTekstowe('kod_pocztowy', /^[0-9]{2}\-[0-9]{3}$/);
}

function weryfikujMiejscowosc() {
	return weryfikujPoleTekstowe('miejscowosc',
			/^[A-Za-zĄŚŹŻĆŁÓĘąśżźćłó]{3,20}$/);
}

function weryfikujTelefon() {
	return weryfikujPoleTekstowe('telefon', /^[0-9]{11}$/);
}

function weryfikujTelefonKontaktowy() {
	return weryfikujPoleTekstowe('telefon_do_osoby_k', /^[0-9]{11}$/);
}

function weryfikujDane() {

	var weryfikacja = true;

	weryfikacja &= weryfikujEmail();
	weryfikacja &= weryfikujHaslo();
	weryfikacja &= weryfikujImie();
	weryfikacja &= weryfikujNazwisko();
	weryfikacja &= weryfikujPesel();
	weryfikacja &= weryfikujNIP();
	weryfikacja &= weryfikujAdres();
	weryfikacja &= weryfikujMiejscowosc();
	weryfikacja &= weryfikujKodPocztowy();
	weryfikacja &= weryfikujTelefon();
	weryfikacja &= weryfikujTelefonKontaktowy();

	if (!weryfikacja) {
		alert('Nie można zarejestrować użytkownika, dane oznaczone na czerwono nie są poprawne.');
	} else {
		document.getElementById('rejestracja').submit();
	}
}

function icd10(kod) {

	day = new Date();
	id = day.getTime();
	eval("page"
			+ id
			+ " = window.open('icd10.php?kod='+kod, '"
			+ id
			+ "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=600,height=380');");

}

function icd9(kod) {

	day = new Date();
	id = day.getTime();
	eval("page"
			+ id
			+ " = window.open('icd9.php?kod='+kod, '"
			+ id
			+ "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=600,height=380');");

}
